package com.fmatos.service.album.downloader;

import com.fmatos.service.album.domain.Album;

public interface ImageDownloader {
	
	/**
	 * Returns URL of a random photo
	 * @return URL where the photo is
	 * @throws DownloaderException to indicate any internal error 
	 * from the chosen Downloader
	 */
	public String getRandomPhotoUrl();
	
	/** Returns the name of the downloader service **/
	public String getDownloaderName();

	/**
	 * Returns all photo URLs in a random album
	 * @param config
	 * @return list of urls
	 */
	public Album getRandomAlbum();

	/**
	 * Some feeds provide smaller resolution images. This
	 * method converts such urls to higher resolutions
	 * @param url
	 * @return
	 */
	public String transformUrlToFullSize(String url);
 
	/**
	 * Some feeds provide higher resolution images unsuited for
	 * thumbnails. This method receives an url and transforms it in its thumbnail
	 * 
	 * @param url
	 * @return
	 */
	public String transformUrlToThumbnail(String url);
	
}

